Page({
  /**
   * 页面初始数据
   */
  data: {
    newsList: [],        // 新闻列表数据
    displayDate: "",     // 顶部显示的日期（如：2025.10.2 星期四）
    isLoading: true,     // 加载中状态（控制加载动画显示）
    apiUrl: "https://v.api.aa1.cn/api/zhihu-news/"  // 核心API地址
  },

  /**
   * 生命周期函数：页面加载时触发（只触发1次）
   */
  onLoad(options) {
    this.getNewsData();  // 首次加载新闻数据
  },

  /**
   * 下拉刷新触发的函数（小程序自带钩子）
   */
  onPullDownRefresh() {
    this.getNewsData(true);  // 传true表示“下拉刷新”，会关闭刷新动画
  },

  /**
   * 核心函数：获取新闻数据（支持首次加载和下拉刷新）
   * @param {boolean} isRefresh - 是否为下拉刷新（默认false）
   */
  getNewsData(isRefresh = false) {
    // 1. 显示加载状态（首次加载时）
    if (!isRefresh) {
      this.setData({ isLoading: true });
    }

    // 2. 调用API获取数据（小程序原生请求方法）
    wx.request({
      url: this.data.apiUrl,
      method: "GET",  // API为GET请求，无需传参
      success: (res) => {
        // API返回的data结构：{ date, news: [], display_date, ... }
        const apiData = res.data;
        
        // 3. 处理数据：更新到页面
        this.setData({
          newsList: apiData.news,  // 新闻列表（核心数据）
          displayDate: apiData.display_date,  // 顶部日期
          isLoading: false  // 关闭加载状态
        });

        // 4. 若为下拉刷新，关闭顶部的“刷新动画”（关键：否则刷新图标会一直转）
        if (isRefresh) {
          wx.stopPullDownRefresh();
        }
      },
      fail: (err) => {
        // 请求失败处理：提示用户+关闭加载状态
        wx.showToast({
          title: "加载失败，请重试",
          icon: "none",  // 不显示图标，只显示文字
          duration: 1500
        });
        this.setData({ isLoading: false });
        // 若为下拉刷新，关闭刷新动画
        if (isRefresh) {
          wx.stopPullDownRefresh();
        }
        console.error("API请求失败：", err);  // 控制台打印错误，便于调试
      }
    });
  }
});